home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #2
/
Monster Media No. 2 (Monster Media)(1994).ISO
/
modem
/
wsftp2.zip
/
WS_DEBUG.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-04-07
|
5KB
|
159 lines
/***************************************************************************
Windows Sockets Client Application Support Module
Written by:
John A. Junod Internet: <junodj@gordon-emh2.army.mil>
267 Hillwood Street <zj8549@trotter.usma.edu>
Martinez, GA 30907 Compuserve: 72321,366
This program executable and all source code is released into the public
domain. It would be nice (but is not required) to give me a little
credit for any use of this code.
THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. IN NO EVENT SHALL JOHN A. JUNOD BE LIABLE FOR ANY DAMAGES
WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS
OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF JOHN A. JUNOD HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*****************************************************************************/
/*
MODULE: WS_DEBUG.C (debug routines)
*/
#include "ws_glob.h"
#include "ws_ftp.h"
struct win_info DBUGWINDOW;
HWND hWndDbg;
int CreateDebugWindow(HWND hMainWnd,HWND hInst)
{
static WNDCLASS wndclass;
long nWndunits; // window units for size and location
int nWndx; // the x axis multiplier
int nWndy; // the y axis multiplier
int nX; // the resulting starting point (x, y)
int nY;
int nWidth; // the resulting width and height for this
int nHeight; // window
wndclass.style =CS_VREDRAW | CS_PARENTDC;
wndclass.lpfnWndProc =DebugWndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInst;
wndclass.hIcon =LoadIcon(hInst,"WS_XBUG");
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=GetStockObject(LTGRAY_BRUSH);
wndclass.lpszMenuName =szAppName;
wndclass.lpszClassName=DBUGWNDCLASS;
// Create a device independant size and location
nWndunits = GetDialogBaseUnits();
nWndx = LOWORD(nWndunits);
nWndy = HIWORD(nWndunits);
nX = ((40 * nWndx) / 4);
nY = ((40 * nWndy) / 8);
nWidth = ((200 * nWndx) / 4);
nHeight = ((200 * nWndy) / 8);
RegisterClass(&wndclass);
hWndDbg=CreateWindow(DBUGWNDCLASS,"WS_FTP Debug",
WS_OVERLAPPEDWINDOW,
nX,nY,nWidth,nHeight,NULL,NULL,hInst,NULL);
ShowWindow(hWndDbg,SW_SHOWMINIMIZED);
return(TRUE);
}
LRESULT CALLBACK DebugWndProc(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
switch (Message)
{
case WM_CREATE:
DBUGWINDOW.hWnd=hWnd;
DBUGWINDOW.nVpos=0;
DBUGWINDOW.nMemPtr=0;
DBUGWINDOW.nLineHeight=8;
DBUGWINDOW.nScreenRows=20;
SetScrollRange(hWnd, SB_VERT, 0, 100, FALSE);
break;
case WM_COMMAND:
if(LOWORD(wParam)==BTN_CLOSE || LOWORD(wParam)==BTN_EXIT ||
LOWORD(wParam)==CMD_CLOSE || LOWORD(wParam)==IDM_EXIT) {
} else if(bCmdInProgress) return(FALSE);
switch (LOWORD(wParam))
{
#include "ws_debug.inc"
case IDM_EXIT:
case IDM_ABOUT:
SendMessage(hWndMain,Message,wParam,lParam);
break;
default:
return DefWindowProc(hWnd, Message, wParam, lParam);
}
break;
case WM_SETCURSOR:
if(bCmdInProgress)
SetCursor(hWaitCursor);
else
return DefWindowProc(hWnd, Message, wParam, lParam);
break;
case WM_PAINT:
DoWindowPaint(&DBUGWINDOW);
break;
case WM_VSCROLL:
switch(LOWORD(wParam))
{
case SB_LINEDOWN:
if(DBUGWINDOW.nVpos<(DBUGWINDOW.nMemPtr-1))
DBUGWINDOW.nVpos++;
break;
case SB_LINEUP:
if(DBUGWINDOW.nVpos>0)
--DBUGWINDOW.nVpos;
break;
case SB_THUMBPOSITION:
DBUGWINDOW.nVpos = min(DBUGWINDOW.nMemPtr, LOWORD(lParam));
break;
case SB_PAGEUP:
if(DBUGWINDOW.nVpos>10)
DBUGWINDOW.nVpos-=10;
else DBUGWINDOW.nVpos=0;
break;
case SB_PAGEDOWN:
if(DBUGWINDOW.nVpos<(DBUGWINDOW.nMemPtr-10))
DBUGWINDOW.nVpos+=10;
else DBUGWINDOW.nVpos=DBUGWINDOW.nMemPtr;
break;
default:
return FALSE;
}
SetScrollPos(hWnd,SB_VERT,DBUGWINDOW.nVpos,TRUE);
InvalidateRect(hWnd,NULL,TRUE);
break;
default:
return DefWindowProc(hWnd, Message, wParam, lParam);
}
return 0L;
}